Pseudo area lights

ABSTRACT

Computer animators have, till now, largely relegated themselves to using point light sources when simulating directional light sources in computer graphics and animation. The illumination achieved is computationally feasible but not totally realistic. While it is possible to use a finite light source of given size and shape to achieve a more realistic effect, the radiosity analysis required to calculate the illumination effect of such a light source is so cumbersome that it cannot be used for real-time computer animation. The described invention allows the animator to approximate the illumination effect of a finite light source by using a point source of varying location and intensity. Another embodiment of the invention allows the animator to realistically simulate ambient light by a similar method. The resulting illumination effects are comparable to those achieved with full radiosity analyses at much lower computational loads.

FIELD OF THE INVENTION

The invention relates generally to the art of computer graphics and animation. More particularly, the invention relates to efficient approximation of finite light sources using point light sources of varying location and intensity.

BACKGROUND OF THE INVENTION

In order to render a scene in computer graphics or computer animation, computer artists and animators often will place one or more light sources within the scene in order to illuminate it. If, for instance, an animator wished to render a room that was lit by two light bulbs, he or she would construct two light sources, representing the light bulbs, and then calculate the illumination effect of these two sources. The standard construct for such directional light sources is the point source, whereby all light is considered to emanate from a single point.

The point source is the standard construct because calculation of its illumination effect is computationally straightforward. For any given surface point within the scene, the rendering method need only calculate the effect of a single ray of light, which has a singular direction and intensity. The disadvantage of using the point source is its lack of realism. When illuminated by a point source, any surface point in the scene will either by illuminated by the point light source, or else wholly hidden from it. As a result, shadows and other partial lighting conditions are rendered in an unrealistically sharp, binary manner (see FIG. 5).

One alternative to using a point light source is to use a finite source, one that has an extended shape and size. The light emerging from a finite source will emanate from its entire surface, and not just a single point. Finite sources illuminate a scene in a much more realistic manner. Some surface points will be illuminated by the entire finite light source, others totally hidden from it. More important is the fact that some points will be partially illuminated by the source.

Despite this superior effect, computer artists and animators do not currently use finite light sources to illuminate their graphics and their scenes. Determination of the total contributing light from a finite light source to a surface point, has, till this point, required a numerical integration over the entire surface of the finite source. Such calculations are simply too cumbersome to be practically used in computer animation. Finite light sources are sometimes used to illuminate single computer-generated scenes or “photos” when a highly realistic image is desired and computational speed is not an issue, but even in these situations the computational burden is considered onerous.

Computer artists and animators run into analogous problems when attempting to simulate ambient light such as skylight. Realistic calculations with respect to simulated ambient light sources are also too cumbersome to make them practical. The conventional technique for simulating ambient light, therefore, is to simply turn up the brightness throughout an entire scene, with perhaps gross modifications for surfaces points that obviously will be differentially affected by the light (such as those under dark shadows). The computation required for this is straightforward, even trivial, but the illumination effect is again not very realistic.

SUMMARY OF THE INVENTION

The invention relates to a method for approximating the illumination effect of a finite light source by a using a point light source of varying intensity and location. These two variables are manipulated depending on the “visibility” of the finite light source from the perspective of the surface point being rendered. The result is realistic illumination with minimal computational effort.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows generally the elements of a computer system suitable for carrying out the present invention.

FIG. 2 shows the main steps involved in rendering a computer-animated scene.

FIG. 3 shows the main steps involved in rendering the surfaces within a computer-animated scene.

FIG. 4 shows the main steps involved in illuminating and shading a rendered surface within a computer-animated scene.

FIG. 5 shows illustrates the problem of unrealistically sharp shadows created by a point light source.

FIG. 6 shows the “terminator region” of partial illumination on an object surface.

FIG. 7 shows the method for choosing a point light source based upon the surface point in question, which results in a particular light vector direction.

FIG. 8 shows the method for determining the light intensity based upon the portion of the finite light source which is hidden.

FIG. 9 shows two examples of pseudo-centers used to calculate light vector directions for given points in the terminator region.

FIG. 10 shows the method of determining the light intensity and light vector direction for a given point under an infinite hemisphere of light, based upon the known tangent plane and normal.

DETAILED DESCRIPTION OF TWO EXEMPLARY EMBODIMENTS

FIG. 1 shows a computer system suitable for carrying out the invention. A main bus 1 is connected to one or more CPUs 2 and a main memory 3. Also connected to the bus are a keyboard 4 and large disk memory 5. The frame buffer 6 receives output information from the main bus and sends it through another bus 7 to either a CRT or another peripheral which writes the image directly onto film. The computer system is used to approximate the illumination effect of a finite light source and an infinite hemisphere light source. The main steps in carrying out the rendering and illumination of a scene are shown in FIGS. 2-4.

One exemplary embodiment of the invention involves use of a directional light source for general illumination within a scene. Such a light source might be the only light source within a scene, it might be the primary source (supplemented by secondary light sources) or it might be one of a number of primary light sources (such as a number of simulated light bulbs).

FIG. 6 shows a spherical light source illuminating the surface of an object. Spheres are perhaps the most useful shapes to use as light sources because they create an illumination effect similar to that of many real-life directional light sources, such as light bulbs. Computation of their illumination effect, whether by explicit integration or approximation, as in the described invention, is also usually simpler than it is with other shapes. The object to be illuminated is, for illustrative purposes, also shown as a sphere.

With respect to the top of the illuminated object, we can draw two tangents between the light sphere and the object, defining points P₀ and P₁. Points to the right of P₀ are wholly hidden from the light sphere, and thus not illuminated. Points to the left of P₁ are wholly illuminated, which means they receive the total illumination of the light sphere. Calculation of both the light intensity and the light vector direction for these points is straightforward (light intensity being some chosen function and vector direction being the vector between the center of the light sphere, C, and the point P being considered).

The points P₀ and P₁ define a terminator region, within which all points are partially illuminated by the light sphere (note that this terminator region is actually an extended band that circles the sphere, with points analogous to P₀ and P₁ defining its boundaries). No and N₁ are the corresponding normals at those points. Determining the illumination effect by radiosity analysis for each of these points would require a numerically complex integration over the portion of the light sphere that illuminates the points. The described invention approximates these calculations with results that are almost indistinguishable from the numerically complex integration.

FIG. 7 shows a tangent plane, Ts, drawn from one of the points P in the terminator region to the light sphere. The tangent plane can be extended further, so that it cuts through the light sphere. Viewed from the side, plane Ts appears as a tangent line (see FIG. 7).

The portion of the projected disk that is above Ts is above the “horizon line” as seen from point P, and thus considered to shine upon that point. The portion of the light sphere below Ts is below the horizon line, and thus considered hidden from point P.

Comparing Ts with the line drawn from point P to the center of the light sphere, line Ps, it follows that θ, the angle between Ts and Ps, is arccos (˜Ps˜N)−π/2 and that D, the distance between the center of the light sphere and the line Ts, is tan (θ)×Ps. The vector direction of the light from the truncated sphere to the object can be approximated by creating a “pseudo-center” X with respect to the light sphere. Pseudo-center X is determined by shifting the center of the light sphere, C, a distance D in the direction given by the vector Ps×(N×Ps).

The vector from this newly defined X to point P defines the vector direction of light used to illuminate point P (see FIG. 7).

The intensity of light reaching the point P will depend on the area of the projection of the truncated light source on a plane perpendicular to the line Ps. That area can in turn be approximated by the area of the truncated sphere projected onto the plane perpendicular to the tangent plane Ts containing the line Ps which is the projection shown in FIGS. 7 and 8.

The intensity of the constructed point source at X that is used to illuminate point P in the terminator region is thus calculated as a function of the portion of the light sphere that is above the horizon, which is also determined from D. We can see in FIG. 8 that the areas of the light sphere visible from point P are areas Z, A and A′. Area Z is simply one-half the area of the disk. Area A is the sum of areas F and G, and the area of A′=A. The area of F is D(R²−D²)^(1/2)/2 and the area of G is [R²arcsin(D/R)]/2. These trigonometric calculations can in practice be approximated by the function T²(3−2T), where T is defined as (D+R)/2R.

The described invention thus uses a point light source of varying location and intensity to approximate the effect of a finite light source. FIG. 9 shows the pseudo-center X, standing alone as a point source, in order to illuminate point P. FIG. 9 also shows another pseudo-center X′ derived by the same method and used to illuminate point P′. The invention achieves an illumination effect similar to that of true radiosity analysis at a computational cost comparable to that required for a point source.

Note that in this embodiment of the invention, the vector direction of the light is drawn from the pseudo-center X, and not from some pseudo-surface point at a given radius as one might expect. This simplification helps reduce the computational load. When the radius of the finite light source is small compared to the distance between the source and the surface it illuminates, the sinplification does not diminish the realism of the effect.

A second exemplary embodiment of the invention is used to simulate ambient light such as skylight. This embodiment first requires the construction of a lighted hemisphere of infinite radius within a scene. The illumination effect of the hemisphere is then approximated using point sources of varying location to achieve a realistic light effect.

In FIG. 10, we can see the lighted hemisphere that encloses the animated scene like a dome, as well as a point P within that scene. To determine the intensity of ambient light that shines upon that point, we first derive the tangent plane and the normal vector, N, to that point (usually from the function that is used to draw P). If we extend this tangent plane so that it reaches out to infinity and intersects the hemisphere, we can see that only a portion of the hemisphere can actually shine light upon point P. That fraction is 1×arccos(N·L), where L is a vector that points toward a chosen “pole” of the hemisphere. The intensity is a simple (usually direct) function of that portion.

The vector direction of light shining upon point P is determined by using the centroid of that portion of the hemisphere cut by the tangent plane. In FIG. 10, we see the centroid O, which is determined by the vector addition of N and L. This centroid then acts a point light source with respect to point P. The vector from O to P defines the vector direction of light. The infinite radius of the light hemisphere serves as a fiction to determine the position of the point O.

The specific arrangements and methods described herein are merely illustrative of the principles of the present invention. Numerous modifications in form and detail may be made by those of ordinary skill in the art without departing from the scope of the present invention. Although this invention has been shown in relation to particular embodiments, it should not be considered so limited. Rather, the present invention is limited only by the scope of the appended claims. 

1. A method for illuminating surfaces in computer graphics comprising the steps of: constructing a plurality of finite light sources within a computer animated scene, each of the finite light sources having a finite size and a center; constructing a plurality of surfaces within the scene, each surface consisting of a plurality of points; and approximating an illumination effect of each of the finite light sources by the use of a single point light source of varying intensity and location, taking into account the the finite size and center of each of the finite light sources.
 2. The method of claim 1 wherein a portion of each of the light sources illuminates each of the points.
 3. The method of claim 2 comprising the further step of approximately calculating a light intensity and a light vector direction as a function of the portion of each of the light sources which illuminates each of the points.
 4. The method of claim 3 comprising the further step of calculating the light intensity as a function of the portion of the light source which illuminates each of the points.
 5. The method of claim 4 comprising the further step of approximating the light vector direction as a function of the portion of the light source shines upon the point.
 6. The method of claim 1 wherein said finite light source is a sphere.
 7. A method for illuminating surfaces in a computer-modeled scene comprising the steps of: constructing a plurality of hemispherical light source of finite radius; constructing a plurality of surfaces with said scene, said surfaces consisting of a plurality of points; and approximating an illumination effect of each of the hemispherical light source by the use of a plurality of point light sources.
 8. The method of claim 7, comprising the further step of calculating a light intensity and a light vector direction as a function of a portion of the light source which illuminates each of the points.
 9. The method of claim 8 wherein said light vector direction is a function of the portion of said hemispherical light source which shines upon said point.
 10. The method of claim 9 wherein said light intensity is a function of the portion of said hemispherical light source which shines upon said point.
 11. An apparatus for illuminating surfaces in computer graphics, the apparatus comprising: a memory configured to store information for a computer animated scene; and a processor coupled to the memory, the processor configured to: construct a plurality of finite light sources within the computer animated scene, each of the finite light sources having a finite size and a center; construct a plurality of surfaces within the scene, each surface comprising a plurality of points; and approximate an illumination effect of each of the finite light sources by the use of a single point light source of varying intensity and location, taking into account the finite size and center of each of the finite light sources.
 12. The apparatus of claim 11 wherein a portion of each of the light sources illuminates each of the points.
 13. The apparatus of claim 12 wherein, for each point, the processor is configured to approximately calculate a light intensity and a light vector direction as a function of the portion of each of the light sources which illuminates the point.
 14. The apparatus of claim 13 wherein, for each point, the processor is configured to calculate the light intensity as a function of the portion of the light source which illuminates the point.
 15. The apparatus of claim 14 wherein the processor is configured to approximate the light vector direction as a function of the portion of the light source that shines upon the point.
 16. The apparatus of claim 11 wherein at least one finite light source from the plurality of finite light sources is a sphere.
 17. An apparatus for illuminating surfaces in a computer-modeled scene, the apparatus comprising: a memory configured to store information for the scene; and a processor coupled to the memory, the processor configured to: construct a hemispherical light source; construct a plurality of surfaces within said scene, said surfaces comprising a plurality of points; and approximate an illumination effect of the hemispherical light source for each point in the plurality of points by use of a single point light source.
 18. The apparatus of claim 17 wherein the processor is configured to calculate a light intensity and a light vector direction for a point from a plurality of points as a function of a portion of the light source which illuminates the point.
 19. The apparatus of claim 18 wherein said light vector direction is a function of the portion of said hemispherical light source which shines upon said point.
 20. The apparatus of claim 19 wherein said light intensity is a function of the portion of said hemispherical light source which sines upon said point.
 21. A method of determining an illumination effect of a finite light source using a computer system, the method comprising: providing a computer-animated scene comprising a finite light source having a position and a shape; providing a surface within the computer-animated scene, the surface comprising a plurality of points; and approximating, for each point in the plurality of points of the surface, an illumination effect of the finite light source for the point by using a point light source whose location and intensity is determined based upon a position of the point on the surface, the position of the finite light source, and the shape of the finite light source.
 22. The method of claim 21 wherein the approximating comprises determining the location and intensity of a point light source for a point based upon a portion of the finite light source that illuminates the point.
 23. The method of claim 21 wherein the shape of the finite light source is substantially a sphere.
 24. A method of approximating an illumination effect of a finite light source using a computer system, the method comprising: providing a computer-animated scene comprising a finite light source having a position and a shape; providing a surface within the computer-animated scene, the surface comprising a first point and a second point; approximating the illumination effect of the finite light source for the first point by using a point light source whose location and intensity is determined based upon a position of the first point on the surface, the position of the finite light source, and the shape of the finite light source; and approximating the illumination effect of the finite light source for the second point by using a point light source whose location and intensity is determined based upon a position of the second point on the surface, the position of the finite light source, and the shape of the finite light source; wherein the location and intensity of the point light source determined for approximating the illumination effect for the second point are different from the location and intensity of the point light source determined for approximating the illumination effect for the first point.
 25. The method of claim 24 wherein: approximating the illumination effect for the first point comprises determining the location and intensity of the point light source based upon a portion of the finite light source that illuminates the first point; and approximating the illumination effect for the second point comprises determining the location and intensity of the point light source based upon a portion of the finite light source that illuminates the second point.
 26. A method of determining an illumination effect of a finite light source using a computer system, the method comprising: providing a computer-animated scene comprising a finite light source having a position and a shape; providing a surface within the computer-animated scene, the surface comprising a plurality of points; and approximating, for each point in the plurality of points, an illumination effect of the finite light source for the point by using a point light source whose location and intensity is determined based upon a portion of the finite light source that illuminates the point.
 27. A method of illuminating surfaces in a computer-modeled scene, the method comprising: providing ambient light in the scene, the ambient light provided by a lighted sphere; providing one or more surfaces in the scene, the one or more surfaces comprising a plurality of points; and approximating an illumination effect of the ambient light for each point in the plurality of points using a point light source, wherein the location and intensity of the point light source used for a point are determined based upon a portion of the lighted sphere illuminating the point.
 28. The method of claim 27 wherein the ambient light is skylight.
 29. An apparatus for determining an illumination effect of a finite light source, the apparatus comprising: a memory configured to store a computer-animated scene comprising a finite light source having a position and a shape, the scene comprising a surface comprising a plurality of points; and a processor coupled to the memory, the processor configured to approximate, for each point in the plurality of points, an illumination effect of the finite light source for the point by using a point light source whose location and intensity is determined based upon a position of the point on the surface, the position of the finite light source, and the shape of the finite light source.
 30. An apparatus for illuminating surfaces in a computer-modeled scene, the apparatus comprising: a memory configured to store information for the computer-modeled scene, the scene comprising an ambient light provided by a lighted sphere and a plurality of surfaces comprising a plurality of points; and a processor coupled to the memory, the processor configured to approximate an illumination effect of the ambient light on the surfaces by approximating an illumination effect of the ambient light for each point in the plurality of points using a point light source, wherein the location and intensity of the point light source used for a point are determined based upon a portion of the lighted sphere illuminating the point. 